package com.atguigu.gmall.order.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

@Configuration
public class ThreadPoolConfig {
    @Bean
    public ThreadPoolExecutor executor() {
        /**
         * 参数1：核心线程数
         * 参数2：最大线程数
         * 参数3：线程空闲时间
         * 参数4：时间单位
         * 参数5：阻塞队列
         * 参数6：线程工厂
         * 参数7：拒绝策略
         */
        return new ThreadPoolExecutor(
                50,
                500,
                30,
                TimeUnit.SECONDS,
                new ArrayBlockingQueue<>(10000));
    }
}
